package org.farec.tcc.spring.controller;

import java.text.ParseException;

import javax.servlet.http.HttpServletRequest;

import org.farec.tcc.dao.MecanicoDao;
import org.farec.tcc.modelo.Mecanico;
import org.farec.tcc.spring.adapter.Adapter;
import org.farec.tcc.spring.adapter.Calendario;
import org.hibernate.Session;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MecanicoController {
	
	@RequestMapping("/formMecanico")
	public String formMecanico(Model model)
	{
		model.addAttribute("estados", new Adapter().getEstados());
		model.addAttribute("dataPadrao", new Calendario().getDataAtual());
		return "cadmecanico";
	}
		
	@RequestMapping("/adicionarMecanico")
	public String adiciona(Mecanico mecanico, String data, HttpServletRequest request) throws ParseException
	{
		mecanico.setDataCadastro(new Calendario().getData(data));
		Session session = (Session) request.getAttribute("session");
		MecanicoDao daoMecanico = new MecanicoDao(session);	
		daoMecanico.adiciona(mecanico);
		return "redirect:listaMecanico";
	}
	
	@RequestMapping("/listaMecanico")
	public String lista(Model model, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		MecanicoDao daoMecanico = new MecanicoDao(session);
		
		model.addAttribute("mecanicos", daoMecanico.lista());
		return "mecanico";
	}
	
	@RequestMapping("/exibeMecanico")
	public String exibe(Mecanico mecanico, Model model, HttpServletRequest request)
	{
		model.addAttribute("estados", new Adapter().getEstados());
		Session session = (Session) request.getAttribute("session");
		MecanicoDao daoMecanico = new MecanicoDao(session);	
		model.addAttribute("mecanico", daoMecanico.exibe(mecanico));
		return "editmecanico";
	}
	
	@RequestMapping("/alterarMecanico")
	public String altera(Mecanico mecanico, String data, HttpServletRequest request) throws ParseException
	{
		mecanico.setDataCadastro(new Calendario().getData(data));
		Session session = (Session) request.getAttribute("session");
		MecanicoDao daoMecanico = new MecanicoDao(session);		
		daoMecanico.altera(mecanico);
		return "redirect:listaMecanico";
	}
	
	@RequestMapping("/removeMecanico")
	public String remover(Mecanico mecanico, HttpServletRequest request)
	{
		Session session = (Session) request.getAttribute("session");
		MecanicoDao daoMecanico = new MecanicoDao(session);	
		daoMecanico.remover(mecanico);
		return "redirect:listaMecanico";
	}

}
